package com.avic.map.service;

import com.avic.map.dal.condition.EmergencyListCondition;
import com.avic.map.dal.model.Emergency;
import com.avic.map.dal.model.EmergencyCar;
import com.avic.map.dal.model.EmergencyFireSign;
import com.avic.map.dal.model.EmergencySoldier;
import com.avic.map.dal.model.EmergencyTagging;

import java.util.List;

/**
 * @author huanghsheng
 */
public interface EmergencyService {

    /**
     * 应急结束记录火点标记
     *
     * @param mapFireSigns
     */
    void saveMapFireSign(List<EmergencyFireSign> mapFireSigns);


    /**
     * 启动应急，更变车辆资源状态
     *
     * @param carNumberS
     * @return
     */
    void emergencyStartUpdateMapCarResourceState(List<String> carNumberS);

    /**
     * 启动应急，更变车辆资源状态
     *
     * @param carNumberS
     * @param updateState
     */
    void emergencyStartUpdateMapCarResourceState(String carNumberS, int updateState);


    /**
     * 启动应急，更变单兵资源状态
     *
     * @param soldierNumber
     * @param updateState
     */
    void emergencyStartUpdateMapSoldierResourceState(String soldierNumber, int updateState);

    /**
     * 启动应急，更变单兵资源状态
     *
     * @param soldierNumberS
     */
    void emergencyStartUpdateMapSoldierResourceState(List<String> soldierNumberS);

    /**
     * 启动应急，更变船舶资源状态
     *
     * @param shipNumberS
     * @return
     */
    void emergencyStartUpdateMapShipResourceState(List<Long> shipNumberS);

    /**
     * 启动应急，更变船舶资源状态
     *
     * @param shipNumber
     * @param updateState
     */
    void emergencyStartUpdateMapShipResourceState(long shipNumber, int updateState);

    /**
     * 创建应急数据
     *
     * @return
     */
    String createEmergency(String userId);

    /**
     * 更新应急
     *
     * @param emergencyId
     */
    void endEmergency(String emergencyId, String emergencyEndName);


    /**
     * 获取应急记录列表数据
     *
     * @param emergencyListCondition
     * @return
     */
    List<Emergency> getEmergencyList(EmergencyListCondition emergencyListCondition);

    /**
     * 获取应急记录列表数据总数
     *
     * @param emergencyListCondition
     * @return
     */
    int getEmergencyListTotal(EmergencyListCondition emergencyListCondition);

    /**
     * 查询应急火灾详情
     *
     * @param emergencyNumber
     * @return
     */
    List<EmergencyFireSign> getEmergencyFireSignList(String emergencyNumber);

    /**
     * 查询当前应急的数量
     *
     * @param emergencyState
     * @return
     */
    Emergency getCurrentEmergency(int emergencyState);

    void updateEmergency(Emergency emergency);

    List<EmergencyCar> emergencyCarList(String emergencyId);

    Emergency queryEmergencyDetail(String emergencyId);

    List<EmergencySoldier> emergencySoldierList(String emergencyId);

    List<EmergencyTagging> emergencyTaggingList(String emergencyId);
}
